package com.example.sp01.service;


import org.springframework.stereotype.Service;
import com.example.sp01.dao.*;
import com.example.sp01.entity.*;
import java.util.*;//导入java所有数据类型如List

import com.github.pagehelper.PageInfo;
import com.github.pagehelper.PageHelper;

// import com.github.pagehelper.PageHelper;
// import com.github.pagehelper.PageInfo;

import jakarta.annotation.Resource;//导入注解Resource

@Service//表明这是一个服务类，用于处理业务逻辑,交给spring boot管理
public class adminService {
    //service要调用dao
    @Resource//注入dao对象，让spring boot管理
    private adminDao adminDao;

    public List<admin> getAdmins(){//返回一个user对象，函数类型也要改为user，默认json格式
        //第1，2种方式，直接调用dao的方法
        //List<admin> list = adminDao.getAdmins();//调用dao方法，返回一个user对象
        //return list;
        //3.基于已经导过mytiabs包了的方式，直接调用dao的方法
        return adminDao.selectAll();
    }
    public PageInfo<admin> findBySearch (Params params){//@RequestParam注解用于获取请求参数的值，这里是获取name参数的值，默认是required=true，必须有name参数
        //开启分页查询
        // System.out.println("i got pageSize in service: " + params.getPageSize() + "");
        PageHelper.startPage(params.getPageNum(), params.getPageSize());
        //返回带有分页信息的数据列表
        List<admin> list = adminDao.findBySearch(params);
        // System.out.println("i got list in service: " + list + "");
        // System.out.println("i got pageSize after service: " + list.PageSize() + "");
        // System.out.println("i got pageSize after service: " + params.getPageSize() + "");
        PageInfo<admin> res= new PageInfo<>(list);

        // System.out.println("pagesize is: " + res.getPageSize() + "");
        Integer ps=params.getPageSize();
        // Integer s1=res.getPageSize();
        // Integer s2=params.getPageSize();
        // ps=  s1>s2?  s2:s1;
        res.setPageSize(ps);//设置每页显示的记录数量:前端传的参数小的那个或者后端自动生成的参数小的那个
        // System.out.println("aftersetpagesize after: " + res.getPageSize() + "");
        return res;
    }

   
    public int addStu(admin admin) throws Exception{//返回一个user对象，函数类型也要改为user，默认json格式
        //账号是否存在
        admin dbadmin=adminDao.selectByAccount(admin.getAccount());//
        if(dbadmin!=null){//如果账号已经存在，就返回0，不允许添加
            throw new Exception("账号已经存在");
        }
        //如果账号不存在，就添加
        if(admin.getAccount()==null){//如果账号为空，就设置为123456
            admin.setAccount("123456");//默认账号为123456
        }
        if(admin.getPassword()==null){//如果密码为空，就设置为123456
            admin.setPassword("password");//默认密码为123456
        }
        int flag=adminDao.insert(admin);//调用dao方法
        if (flag == 0) {
        throw new RuntimeException("插入数据失败");
        }
        
        return 1;

    }
    public void updateStu(admin admin) throws Exception{//返回一个user对象，函数类型也要改为user，默认json格式
        // System.out.println("i got account in service: " + admin.getAccount() + "");
        //ok
        adminDao.updateByAccount(admin);//调用dao方法
    
    }
}
